Programmable logic controllers (PLCs) perform many of the control functions for assembly line machines, machine tools, and other types of industrial equipment. For example, a part arriving at a workstation may contact and close a limit switch or other type of sensing device. As a result, an electrical circuit is completed or broken, and a signal is sent to a PLC indicating the change in condition. The PLC responds to the input as directed by a ladder logic program which, to a large degree, simulates the response of what used to be accomplished by older systems with a set of relays and other control devices. Ladder logic programs instruct the PLC how and when to react to the different signals it receives. The PLC, in turn, instructs the devices it controls in an appropriate manner as specified in the ladder logic program.
A PLC is comprised of a processor, memory, input modules, and output modules. FIG. 19 shows a PLC processor 120 and memory 122, wherein the PLC 118 is (optionally) connected 124 to a personal computer 126. Ladder logic programs may be developed on the personal computer 126 and then downloaded to the PLC 118. The PLC processor 120 executes the ladder logic program. The memory 122 stores output image tables, input image tables, timer storage, counter storage, and ladder logic program workspace. The input modules connect the PLC 118 to input devices and can receive both digital and analog signals. The output modules connect the PLC 118 to machines or other devices and can transmit either digital or analog signals to control them.
In most PLCs, such as those manufactured by the Allen-Bradley Company, memory is structured into "Data Table files" 136-154 as shown in FIG. 21. The memory may be divided into as many as 1000 different Data Table files 136-154. There are a plurality of different types of Data Table files 136-154, each serving a different purpose. These Data Table files comprise the Input Image 138, Output Image 136, Status 140, Bit 142, Timer 144, Counter 146, Control 148, Integer 150, and Floating Point 152 files.
The Input Image Data Table file 138 maintains the status of inputs to the PLC. A single bit in the Input Image Data Table file 138 represents the status of a single I/O point on an input module. If an input bit is ON, then a signal has been received at the input module. If the input bit is OFF, then no signal has been received at the input module.
The Output Image Data Table file 136 controls the outputs from the PLC. A single bit in the Output Image Data Table file 136 represents the status of a single I/0 point on an output module. If an output bit is ON, then the PLC sends a signal to the output module. If the output bit is OFF, then the PLC does not send a signal to the output module.
The Timer Data Table file 144 reflects the status of timers executing in the ladder logic program. Timers keep track of timed intervals according to the ladder logic program. Timers consist of Accumulated Values and Preset Values. The timer intervals are stored in the Timer Accumulators and typically have three bases: (1) 1.0 seconds; (2) 0.1 seconds; and (3) 0.01 seconds. Timer status bits indicate whether the timer is enabled and whether it has timed out.
The Counter Data Table file 146 reflects the status of counters executing in the ladder logic program. Counters accumulate the number of events that occur in a ladder logic program, wherein an event is defined as the transition from a condition of "false" to "true". Counters consist of Accumulated Values and Preset Values. Counter status bits indicate the following: whether the counter has overlowed or underflowed; whether the Accumulator Value is greater than or equal to the Preset Value (i.e., "count complete"); an enable bit for "counter up" instructions; and an enable bit for "counter down" instructions.
The remaining Data Table files, Status 140, Bit 142, Control 148, Integer 150, and Floating Point 152, can perform a number of different functions. The various functions of these Data Table files are not essential to an understanding of the present invention.
The PLC uses addresses to refer to words and bits in the Data Tables files. The addresses allow a ladder logic program to identify Data Table files, elements therein, and bits of the elements. Addresses are generally expressed "&lt;file type&gt; &lt;file number&gt;: &lt;element&gt;. &lt;subelement&gt;/ &lt;bit number&gt;". Thus, the address "B3:10/1" means "Bit file type; File #3; Element #10; bit #1".
Addresses of elements in the Output Image 136 and Input Image 138 Data Table files are specified in octal format, i.e., 00-07 and 10-17 are valid bit addresses. All of the other file types use decimal addresses for elements. Bit type 142 Data Table files are "wordless". Addresses entered in a "word/bit" format are converted by the softward package into a bit-only format. For example, if address B3:10/1 is entered by the user, the software package converts it to B3/161 (10 words .times.16 bits/words+1 bit). The Output Image 136, Input Image 138, and Status 140 files are unique in that their maximum sizes are set by the PLC processor type as shown in FIG. 21. The remaining file types 142-154 may contain a maximum of 1000 elements. File types may be duplicated as needed to allocate storage space. For example, if more timers than the 1000 available in file "T4" are needed, file "T9" can be created. Ideally, the user would assign timers (or other variables) sequentially to conserve memory.
As shown in FIG. 20, the ladder logic program 12 scanned by the processor of the PLC (and used to control the PLC) is a group of statements 130. These statements 130 are often displayed to programmers in a graphical manner comprising ladder diagrams and functional block instructions. Each statement 130, or "rung" of the ladder logic program 128, consists of at least one condition test 132 and at least one action 134 to be performed when the condition is met. When the condition 132 is met, the rung is "true" and some action 134 is taken, for example, a signal is transmitted, a counter is enabled, a timer is started, etc.
FIG. 22 shows an example "rung". If the input bit 01 has been turned "ON" 156 (i.e., a binary value of "1") by an input device, then the PLC responds by turning output bit 01 "ON" 158 (i.e., a binary value of "1").
The typical PLC is comprised of a number of categories of instructions, including a standard set of arithmetic, logical, move, diagnostic, register, comparison, and data transfer instructions, as would be found in any computer. Program control instructions are also available, allowing the user to structure the ladder logic programs.
In addition to the standard set of instructions, PLCs have a number of special-purpose machine control instructions. Relay-type instructions allow the PLC to monitor and control inputs and outputs for both digital and analog devices. Timer and counter instructions control interval timers and event counters. Sequencer instructions let the PLC monitor and control up to 16 I/0 status bits at the same time. Immediate I/0 instructions scan critical inputs or set critical outputs prior to normal I/0 scans. Control instructions are available to let the PLC perform proportional, integral, and derivative (PID) control of processes and equipment.
In prior art ladder logic development systems, programmers can develop ladder logic programs on-line or off-line from the PLC, communicate with the PLC on-line to monitor the program's status, troubleshoot the ladder logic program, force the status of I/0 status bits ON or OFF to simulate events, and perform a number of other functions. However, these prior art development systems offer little in the way of productivity aids for the ladder logic programmer and serve primarily as limited platforms for programming ladder logic.